package appbenedictoxvi;

import java.util.ArrayList;

public class AdmInstructor {

    private ArrayList<Instructor> instructores;
    
    public AdmInstructor() {
        instructores = new ArrayList<Instructor>();
    }

    public ArrayList<Instructor> getInstructores() {
        return instructores;
    }

    public void setInstructores(ArrayList<Instructor> instructores) {
        this.instructores = instructores;
    }
    
    public void registrarInstructor(String cod_instructor, String nom_instructor) throws BusinessException
    {
        validarDatos(cod_instructor, nom_instructor);
        //Crear un nuevo curso
        Instructor instructor = new Instructor(cod_instructor, nom_instructor);
        //Adicionar el nuevo curso a la colección
        instructores.add(instructor);
    }
     public Instructor buscarInstructor(String cod_instructor) 
    {
        for (Instructor instructor : instructores) {
            if (instructor.getCod_instructor().equals(cod_instructor)) {
                return instructor;
            }
        }
        return null;
    }

    private void validarDatos(String cod_instructor, String nom_instructor) throws BusinessException
    {
        validarDatosMandatorios(cod_instructor, nom_instructor);
        validarDuplicidad(cod_instructor);
    }

    private void validarDatosMandatorios(String cod_instructor, String nom_instructor) throws BusinessException
    {
        String mensaje = "";
        if (cod_instructor == null || cod_instructor.isEmpty()) {
            mensaje += "\n Código no puede ser vacio.";
        }
        if (nom_instructor == null || nom_instructor.isEmpty()) {
            mensaje += "\n Nombre no pueder ser vacio.";
        }
        if (!mensaje.isEmpty()) {
            throw new BusinessException(mensaje);
        }
    }

    private void validarDuplicidad(String cod_instructor) throws BusinessException
    {
        Instructor instructor = buscarInstructor(cod_instructor);
        if (instructor != null) {
            String mensaje = "Código : " + cod_instructor + " duplicado.";
            throw new BusinessException(mensaje);
        }
    }

    public void eliminarInstructor(String cod_instructor) throws BusinessException
    {
        Instructor instructor = buscarInstructor(cod_instructor);
        if (instructor != null){
            instructores.remove(instructor);
           
        } else {
            ValidarEliminacionDeUnInstructorInexistente(cod_instructor);  
        }
    }

    private void ValidarEliminacionDeUnInstructorInexistente(String cod_instructor) throws BusinessException 
    {
        Instructor instructor = buscarInstructor(cod_instructor);
        if (instructor == null) {
            String mensaje = "Instructor a eliminar con código " + cod_instructor + " no existe.";
            throw new BusinessException(mensaje);
        }
    }
    
    public void modificarInstructor(String cod_instructor, String nom_instructor)
    {
        Instructor instructor = buscarInstructor(cod_instructor);

        if (instructor != null) {
            instructor.setNom_intructor(nom_instructor);          
        }
    }
}
